package com.gelpag.base.business.login;

import been.UserInfo;
import entity.Const;
import entity.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import tools.utils.Common;

import java.util.HashMap;
import java.util.Map;

@RestController
//解决跨域问题,微服务之间调用时起作用，默认都加上
@CrossOrigin
@RequestMapping("/login")
@Api(description = "登录管理")
public class loginController {

    @Autowired
    private LoginService loginService;

    @ApiOperation(value = "登录操作")
    @PostMapping("/checkUserInfo")
    public Result checkUserInfo(UserInfo userInfo) {

        //参数验证
        Map<String, String> checkMap = isPassCheckUserInfo(userInfo);

        if (Const.NOT_NOMAL_PARAM.equals(checkMap.get(Const.PARAM_KEY))) {
            return new Result(Const.RESULT_1, checkMap.get(Const.PARAM_RET_KEY), "", "");
        }
        if (!loginService.checkUserInfo(userInfo)) {
            //说明没有这个用户
            return new Result(Const.RESULT_1, "账号密码错误！", "", "");
        } else {
            //验证通过,生成token返回
            String token = loginService.createToken(userInfo.getLogin_name());
            return new Result(Const.RESULT_0, "登录成功", token, "");
        }
    }

    private Map<String, String> isPassCheckUserInfo(UserInfo userInfo) {

        Map<String, String> checkMap = new HashMap<String, String>();
        //默认返回正常
        checkMap.put(Const.PARAM_KEY, Const.NOMAL_PARAM);

        //验证用户名和密码是否填写
        String login_name = userInfo.getLogin_name();
        String login_password = userInfo.getLogin_password();
        if (Common.isNullString(login_name) || Common.isNullString(login_password)) {
            checkMap.put(Const.PARAM_KEY, Const.NOT_NOMAL_PARAM);
            checkMap.put(Const.PARAM_RET_KEY, "用户名或密码必须填写!");
            return checkMap;
        }

        return checkMap;
    }

//    @ApiOperation(value = "登录操作")
//    @PostMapping("/checkUserInfo")
//    public Result checkUserInfo(@RequestBody Map<String, String> loginMap) {
//
//        //参数验证
//        Map<String, String> checkMap = isPassCheckUserInfo(loginMap);
//
//        if (Const.NOT_NOMAL_PARAM.equals(checkMap.get(Const.PARAM_KEY))) {
//            return new Result(Const.RESULT_1, checkMap.get(Const.PARAM_RET_KEY),"","");
//        }
//        if (!loginService.checkUserInfo(loginMap)) {
//            //说明没有这个用户
//            return new Result(Const.RESULT_1,"账号密码错误！","","");
//        } else {
//            //验证通过,生成token返回
//            String token = loginService.createToken(loginMap.get("login_name"));
//            return new Result(Const.RESULT_0,"登录成功",token,"");
//        }
//    }

//    private Map<String, String> isPassCheckUserInfo(Map<String, String> loginMap) {
//
//        Map<String, String> checkMap = new HashMap<String, String>();
//        //默认返回正常
//        checkMap.put(Const.PARAM_KEY, Const.NOMAL_PARAM);
//
//        //验证用户名和密码是否填写
//        String login_name = loginMap.get("login_name");
//        String login_password = loginMap.get("login_password");
//        if (Common.isNullString(login_name) || Common.isNullString(login_password)) {
//            checkMap.put(Const.PARAM_KEY, Const.NOT_NOMAL_PARAM);
//            checkMap.put(Const.PARAM_RET_KEY, "用户名或密码必须填写!");
//            return checkMap;
//        }
//
//        return checkMap;
//    }

}
